/**
 *@author Victor Roncalla
 */

package pe.com.chilis.delivery.dao.implementacion;

import java.sql.SQLException;
import java.util.ArrayList;

import pe.com.chilis.delivery.beans.BCliente;
import pe.com.chilis.delivery.beans.BDetallePedido;
import pe.com.chilis.delivery.beans.BPedido;
import pe.com.chilis.delivery.dao.interfaz.IDespachadorPedido;
import pe.com.chilis.delivery.excepcion.ExcepcionDatos;

import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;

public class OracleDespachadorPedido extends SqlMapDaoTemplate implements IDespachadorPedido {

	public OracleDespachadorPedido(DaoManager daoManager) {
		super(daoManager);
	}

	@Override
	public long registrarPedido(BPedido pedido) {
		long resultado = 0;
		
		try {
			getSqlMapExecutor().insert("registrarPedido", pedido);
			
			for(BDetallePedido detallePedido : pedido.getDetallePedido()){
				detallePedido.setPedido(pedido);
				registrarDetallePedido(detallePedido);
			}
			resultado = 1;	
		} catch (SQLException excepcion){
			System.out.println("Error - " + this.getClass().getName() + ".registrarPedido(): " + excepcion.getMessage());
		}
		
		return resultado;
	}

	@Override
	public void registrarDetallePedido(BDetallePedido detallePedido) {
		try {
			getSqlMapExecutor().insert("registrarDetallePedido", detallePedido);
		} catch (SQLException excepcion){
			System.out.println("Error - " + this.getClass().getName() + ".registrarDetallePedido(): " + excepcion.getMessage());
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public ArrayList<BPedido> buscarPedidoPorCliente(BPedido pedido) throws ExcepcionDatos {
		ArrayList<BPedido> pedidos = new ArrayList<BPedido>();
		try {
			pedidos = (ArrayList<BPedido>)queryForList("buscarPedidos", pedido);
		} catch (Exception excepcion){
			System.out.println("Error - " + this.getClass().getName() + ".buscarPedidoPorCliente(): " + excepcion.getMessage());
		}
		return pedidos;
	}

	@SuppressWarnings("unchecked")
	@Override
	public ArrayList<BDetallePedido> buscarDetallePedidoPorPedido(BPedido pedido) throws ExcepcionDatos {
		ArrayList<BDetallePedido> lstDetallePedido = new ArrayList<BDetallePedido>();  
		try {
			lstDetallePedido = (ArrayList<BDetallePedido>)queryForList("buscarDetallePedido", pedido);
		} catch (Exception excepcion){
			System.out.println("Error - " + this.getClass().getName() + ".buscarDetallePedidoPorPedido(): " + excepcion.getMessage());
		}
		return lstDetallePedido;
	}





}
